package Modele;

/**
 * Classe permettant de gérer des coordonnées
 * @author El Meknassi Hamza (10806466) - Migeon Cyril (11007322)
 */
public class Position {

    private int x;
    private int y;

    /**
     * Constructeur qui prend en paramètres les coordonnées
     * @param x 
     * @param y 
     */
    public Position (int x, int y)
    {
        this.x = x;
        this.y = y;
    }
    
    /**
     * Set la position avec les coordonnées données en paramètres puis return true si le changement est possible
     * @param x
     * @param y
     * @return true si le changement est effectué
     */
    public boolean setPosition (int x, int y)
    {
        if (x >= 0 && x < 10 && y >=0 && y<10)
        {
            this.x = x;
            this.y = y;
            return true;
        }
        else
            return false;
    }
    
    /**
     * Set la position avec la position donnée en paramètre
     * @param position
     * @return true si le changement est effectué
     */
    public boolean setPosition (Position position)
    {
        if (x >= 0 && x < 10 && y >=0 && y<10)
        {
            this.x = position.getX();
            this.y = position.getY();
            return true;
        }
        else
            return false;
    }

    /**
     * Get de la position
     * @return la position
     */
    public Position getPosition(){ return this;}

    /**
     * Get de l'abcisse
     * @return x
     */
    public int getX() {return this.x;}

     /**
     * Get de l'ordonnée
     * @return y
     */
    public int getY() {return this.y;}
    
    /**
     * Compare la position passée en paramètre avec l'instance de la classe position
     * @param position
     * @return true si les positions sont equivalentes, false sinon
     */
    public boolean comparePosition(Position position){
        if((this.getX() == position.getX()) && (this.getY() == position.getY()))
            return true;
        else
            return false;
    }
    
    /**
     * Compare l'abcisse et l'ordonnée passés en paramètre avec l'instance de la classe position
     * @param x 
     * @param y
     * @return true si les positions sont equivalentes, false sinon
     */
    public boolean comparePosition(int x, int y){
        if((this.getX() == x) && (this.getY() == y))
            return true;
        else
            return false;
    }
}
